package com.itheima.youdianda.service.impl;

import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.itheima.youdianda.common.R;
import com.itheima.youdianda.dto.YddAdvimgDto;
import com.itheima.youdianda.dto.YddLinkDto;
import com.itheima.youdianda.mapper.YddLinkMapper;
import com.itheima.youdianda.pojo.YddAdvpos;
import com.itheima.youdianda.pojo.YddLink;
import com.itheima.youdianda.service.YddLinkService;
import org.springframework.stereotype.Service;

@Service
public class YddLinkServiceImpl extends ServiceImpl<YddLinkMapper, YddLink> implements YddLinkService {

    /**
     * 友情链接详情
     *
     * @param id
     * @return
     */
    @Override
    public R rowInfo(Integer id) {
        YddLink yddLink = this.getById(id);
        return R.success(yddLink);
    }

    /**
     * 友情链接修改
     * @param yddLink
     * @return
     */
    @Override
    public R yddLinkUpdate(YddLink yddLink) {
        this.updateById(yddLink);
        return R.success("修改成功!");
    }

    @Override
    public R yddLinkAdd(YddLink yddLink) {
        // yddLink.setDefaultData("1");
        save(yddLink);
        return R.success("添加成功");
    }
    /**
     * 友情链接列表
     * @param page
     * @param limit
     * @param type
     * @return
     */
    @Override
    public R yddLinkList(Integer page, Integer limit, String type) {
        Page<YddLink> yddLinkPage = new Page<>(page, limit);

        //添加条件
        LambdaQueryWrapper<YddLink> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(StrUtil.isNotBlank(type), YddLink::getType, type);
        page(yddLinkPage, wrapper);

        YddLinkDto yddLinkDto = new YddLinkDto();
        yddLinkDto.setCount(Convert.toInt(yddLinkPage.getTotal()));
        yddLinkDto.setPageSize(Convert.toInt(yddLinkPage.getSize()));
        yddLinkDto.setTotalPages(Convert.toInt(yddLinkPage.getPages()));
        yddLinkDto.setCurrrntPage(Convert.toInt(yddLinkPage.getCurrent()));
        yddLinkDto.setData(yddLinkPage.getRecords());
        return R.success(yddLinkDto);

    }

    /**
     * 友情链接删除
     * @param id
     * @return
     */
    @Override
    public R del(Integer id) {
        YddLink yddLink = this.getById(id);
        //获取默认值
        String defaultData = yddLink.getDefaultData();
        //若默认值为1,不可以删除
        if ("1".equals(defaultData)) {
            return R.error("系统默认数据，不允许删除");
        }
        //删除
        this.removeById(id);
        return R.success("删除成功!");
    }
}
